/**
 * GET 请求
 * @param url 请求地址
 * @returns {Promise<*>} JSON数据
 */
const get = (url) => {
    return fetch(url).then(res => {
        if (res.status === 429) {
            return Promise.reject("请求频繁");
        }
        return res;
    }).then(res => res.json());
};

/**
 * POST 请求
 * @param url 请求地址
 * @param body 请求参数
 * @returns {Promise<*>} JSON数据
 */
const post = (url, body) => {
    return fetch(url, {
        headers: {
            "content-type": "application/json",
        },
        body: JSON.stringify(body),
        method: "POST"
    }).then(res => {
        if (res.status === 429) {
            return Promise.reject("请求频繁");
        }
        return res;
    }).then(res => res.json());
};

/**
 * Graphql 请求
 * @param body 请求参数
 * @returns {Promise<*>} JSON数据
 */
const graphql = (body) => {
    return post("https://leetcode.cn/graphql/", body);
};